package com.xbongbong.distributor.dto;

import com.xbongbong.paas.toolbox.wrap.QueryIgnore;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Locale;

/**
 * @author feng.zheng
 * @version v1.0
 * @description 经销商基础dto
 * @since v1.0
 */
@Setter
@Getter
@ToString
public class DistributorBaseDTO extends DistributorVendorBaseDTO{
    private static final long serialVersionUID = -2467255856691656217L;
    /**
     * 经销商用户id
     */
    @NotNull(message="经销商用户ID不能为空")
    private Long distributorUserId;
    /**
     * 厂商id
     */
    @NotBlank(message="公司ID不能为空")
    private String corpid;

    /**
     * 所属经销商id
     */
    @NotNull(message="经销商ID不能为空")
    private Long distributorId;
    /**
     * 名称
     */
    private String name;

    /**
     * 电话
     */
    private String phone;

    /**
     * 角色（主管理员、管理员、普通用户）
     */
    @NotBlank(message = "角色标识不能为空")
    private String role;

    /**
     * 平台 web：pc浏览器；dingtalk：钉钉；all：全部
     */
    @NotBlank(message = "平台标识不能为空，请传入web或者dingtalk或者all")
    @Getter(onMethod_ = {@QueryIgnore})
    private String platform;

    /**
     * 目前没有比较优雅的方式拿到，主要用于日志
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private String httpHeader;

    /**
     * 浏览器信息，主要用于登录日志，会在网关置入
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private String browserInfo;

    /**
     * 操作来源ip, 主要用于登录日志，会在网关置入
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private String ip;
    /**
     * 跳过重复提交校验，主要用于接口自动化测试
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private Boolean ignoreConCheck;
    /**
     * 语言包参数，从网关置入，若是跳过校验的链接，请注意本参数可能为空
     * 格式: zh_CN, en_US
     */
    @Setter
    private String locale;
    /**
     * 经销商标记
     * @see com.xbongbong.pro.enums.DistributorMarkEnum
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private Integer distributorMark;

    @QueryIgnore
    public String getLocale() {
        if (locale == null) {
            locale = Locale.CHINA.toString();
        }
        return locale;
    }

}
